#ifndef RP2MATERIALSTATE_H
#define RP2MATERIALSTATE_H

#include "Rp2GlobalState.h"
#include "Rp2ColorRGB.h"

namespace Rp2
{
class MaterialState : public GlobalState
{
RP2_DECLARE_INITIALIZE;
RP2_DECLARE_TERMINATE;

public:
	MaterialState();
	virtual ~MaterialState();

	virtual StateType GetStateType() const {return MATERIAL;}

    ColorRGB Emissive;  // default: ColorRGB(0,0,0)
    ColorRGB Ambient;   // default: ColorRGB(0.2,0.2,0.2)
    ColorRGB Diffuse;   // default: ColorRGB(0.8,0.8,0.8)
    ColorRGB Specular;  // default: ColorRGB(0,0,0)
    float Alpha;        // default: 1
    float Shininess;    // default: 1
};

RP2_REGISTER_INITIALIZE(MaterialState);
RP2_REGISTER_TERMINATE(MaterialState);
typedef Pointer<MaterialState> MaterialStatePtr;

}

#endif